﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//int main()
//{
//	printf("\q");
//	return 0;
//}
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//	printf("%d\n", strlen("c:\test\121"));
//	return 0;
//}

//求两个数的较大值
//int main()
//{
//	int a = 0;
//	int b = 0;
//	printf("请输入两个整数>:");
//	scanf("%d%d", &a, &b);
//	int max = a;//先假设a较大
//	if (b > a)
//	{
//		max = b;
//	}
//	printf("这两个数较大者为:%d\n", max);
//	return 0;
//}
//求两个数的较大值
//#include <stdio.h>﻿
//
//int Max(int a, int b)
//{
//	return (a > b ? a : b);
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	printf("请输入两个整数>:");
//	scanf("%d%d", &a, &b);
//	printf("这两个数较大者为:%d\n", Max(a, b));
//	return 0;
//}

//字符转ASCII码
//#include <stdio.h>
//int main()
//{
//	char ch = 0;
//	scanf("%c", &ch);
//	printf("%d\n", ch);
//	return 0;
//}

//计算y的值
//#include <stdio.h>
//
//int main()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d", &x);
//	if (x < 0)
//	{
//		y = 1;
//	}
//	else if (x == 0)
//	{
//		y = 0;
//	}
//	else
//	{
//		y = -1;
//	}
//	printf("%d\n", y);
//	return 0;
//}

//被5整除问题
//#include <stdio.h>
//
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num % 5 == 0)
//	{
//		printf("YES\n");
//	}
//	else
//	{
//		printf("NO\n");
//	}
//}

//判断整数奇偶性
//#include <stdio.h>
//
//int main()
//{
//	int num = 0;
//	while (scanf("%d", &num) != EOF)
//	{
//		if (num % 2 == 0)
//		{
//			printf("Even\n");
//		}
//		else
//		{
//			printf("Odd\n");
//		}
//	}
//	return 0;
//}

//#include <stdio.h>
//int sum(int a)//2
//{
//	int c = 0;//1
//	static int b = 3;//5 7 9
//	c += 1;
//	b += 2;
//	return (a + b + c);//8 10 12 14 16
//}
//int main()
//{
//	int i;
//	int a = 2;
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d,", sum(a));
//	}
//}
//判断是不是字母
// #include <stdio.h>
// #include <ctype.h>
// int main() 
// {
//     char ch = 0;
//     while (scanf("%c", &ch) != EOF)
//     {
//         getchar();//清理缓冲区的'\n'
//         if (isalpha(ch))
//         {
//             printf("%c is an alphabet.\n", ch);
//         }
//         else
//         {
//             printf("%c is not an alphabet.\n", ch);
//         }
//     }
//     return 0;
// }
//#include <stdio.h>
//
//int main()
//{
//	char ch = 0;
//	while (scanf("%c", &ch) != EOF)
//	{
//		getchar();//清理缓冲区的'\n'
//		if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
//		{
//			printf("%c is an alphabet.\n", ch);
//		}
//		else
//		{
//			printf("%c is not an alphabet.\n", ch);
//		}
//	}
//	return 0;
//}

//字母大小写转换
#include <stdio.h>
#include <ctype.h>
// int main() 
// {
//     char ch = 0;
//     while (scanf("%c", &ch) != EOF)
//     {
//         if (ch >= 'A' && ch <= 'Z')
//         {
//         printf("%c\n", ch + 32);
//         }
//         else if (ch >= 'a' && ch <= 'z')
//         {
//             printf("%c\n", ch - 32);
//         }
//     }
//     return 0;
// }
//int main()
//{
//	char ch = 0;
//	while (scanf("%c", &ch) != EOF)
//	{
//		if (isupper(ch))
//		{
//			printf("%c\n", tolower(ch));
//		}
//		else if (islower(ch))
//		{
//			printf("%c\n", toupper(ch));
//		}
//	}
//	return 0;
//}

//小乐乐找最大数
// #include <stdio.h>
// #include <limits.h>
// int main() 
// {
//     int num = 0;
//     int max = INT_MIN;
//     for (int i = 0; i < 4; ++i)
//     {
//         scanf("%d", &num);
//         if (num > max)
//         {
//             max = num;
//         }
//     }
//     printf("%d\n", max);
//     return 0;
// }
//#include  <stdio.h>
//int main()
//{
//	int arr[4] = { 0 };
//	int max = 0;
//	for (int i = 0; i < 4; ++i)
//	{
//		scanf("%d", &arr[i]);
//		//第一次默认arr[0]最大
//		if (i == 0)
//		{
//			max = arr[0];
//		}
//		else //后面的依次进行比较
//		{
//			if (arr[i] > max)
//			{
//				max = arr[i];
//			}
//		}
//	}
//	printf("%d\n", max);
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int a = 0, b = 0;
//	for (a = 1, b = 1; a <= 100; a++)// a 1 2  3 4 5 6 7 8b 1 4 7 10 13 16 19 21
//	{
//		if (b >= 20)
//		{
//			break;
//		}
//		if (b % 3 == 1)
//		{
//			b = b + 3;
//			continue;
//		}
//		b = b - 5;
//	}
//	printf("%d\n", a);
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//	int count = 0;
//	//生成1-100的数字
//	for (int i = 0; i < 101; ++i)
//	{
//		if (i % 10 == 9)
//		{
//			count++;
//		}
//		if (i / 10 == 9)
//		{
//			count++;
//		}
//	}
//	printf(" 1到 100 的所有整数中出现%d个数字9\n", count);
//	return 0;
//}

//编写代码在一个整形有序数组中查找具体的某个数
//要求：找到了就打印数字所在的下标，找不到则输出：找不到。
#include <stdio.h>

int main()
{
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int left = 0;
	int key = 0;

	printf("请输入要查找的数字>:");
	scanf("%d", &key);

	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	while (left <= right)
	{
		int mid = right - (right - left) / 2;//防止溢出
		if (key < arr[mid])
		{
			right = mid - 1;
		}
		else if (key > arr[mid])
		{
			left = mid + 1;
		}
		else
		{
			printf("找到了，下标为>:%d\n", mid);
			break;
		}
	}
	if (left > right)
	{
		printf("找不到\n");
	}
	return 0;
}